home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
data
/
nyan_e2
/
nyane2rd.plp
< prev
next >
Wrap
Text File
|
1993-11-30
|
13KB
|
662 lines
/********** RTNファイルを元に取得発言を設定する v1.04a用 **********/
%limit {0}; /* memoに表示するタイトルの総数 (「0」で全指定) */
var objfile[82];
var FORUM[10];
var MES[3];
var MesType[3];
var Line[82];
var item[8];
var item2[8];
var flag[3];
var mark[3];
var MIDOKU[4];
var sp[2];
%mcopy{[ORI,NEW]
var now[5];
now:=0;
%max @nolmemo(ORI);
loop({
madd(NEW,@memo(ORI,now+1,memomax));
case(now+memomax<max,
{Yes},{ now:=now+memomax;
im({Yes});
},{No},{im({No});
});
});
};
%mmove{[ORI,First,End,NEW]
var now[5];
now:=First-1;
loop({
case(now+memomax<End,
{Yes},{
madd(NEW,@memo(ORI,now+1,memomax));
now:=now+memomax;
im({Yes});
},{No},{
madd(NEW,@memo(ORI,now+1,End-now));
im({No});
});
});
};
%setOLD{
%tmp logd|{\_READ.TMP};
%letter @getchar(ID,1,1);
item:=1;
mwrite(tmp,2);
mclear(2);
Line:=@read(tmp,1,1);
case(@getchar(Line,6,8)=ID && @getchar(Line,1,1)={ },
{Yes},{ madd(2,{});
},{No},{madd(2,@getchar(Line,1,2));
});
fopen(tmp);
loop({
Line:=@fread(6,letter);
item2:=@ftell;
case(@getchar(Line,6,8)=ID && @getchar(Line,1,1)={ },{Yes},{
mread(tmp,2,item+1,item2-item-1);
madd(2,mark);
item:=item2;
});
im(Line<>{});
});
mread(tmp,2,item+1,99999);
delfile(tmp);
};
%setNEW{
%tmp logd|{\_READ.TMP};
%letter @getchar(ID,1,1);
item:=1;
mwrite(tmp,2);
mclear(2);
Line:=@read(tmp,1,1);
case(@getchar(Line,8,8)=ID && @getchar(Line,1,1)={ },
{Yes},{ madd(2,{});
},{No},{madd(2,@getchar(Line,1,2));
});
fopen(tmp);
loop({
Line:=@fread(8,letter);
item2:=@ftell;
case(@getchar(Line,8,8)=ID && @getchar(Line,1,1)={ },{Yes},{
mread(tmp,2,item+1,item2-item-1);
madd(2,mark);
item:=item2;
});
im(Line<>{});
});
mread(tmp,2,item+1,99999);
delfile(tmp);
};
%IDset{
CloseAllMemo;
footnote({ ただいまデータを書き出しています});
case(MesType,{OLD},{setOLD},{NEW},{setNEW});
};
%SelHan{
var ID[10];
%mtxt logd|{\}|FORUM|{\MEMBER.TXT};
CloseAllMemo;
mclear(3);
case(@filechk(mtxt),
{Yes},{ mread(mtxt,3);
},{No},{mread(logd|{\MAIL\MEMBER.TXT},3);
});
mopen(3,0,21,256,459,{w});
footnote({終了決定},{b});
loop({
waitx(1000);
im(@xtype!=3 && @xtype<100 || @xlinenum<0)
});
case(@PFK(@xtype),
3,{ ID:=@getchar(@memo(3,@xlinenum),1,8);
IDset;
},101,{ CloseAllMemo; ID:={};
},102,{ ID:=@getchar(@memo(2,@xlinenum),1,8);
IDset;
});
footnote({});
mclear(3);
};
%RMN{
var num[6];
var count[6];
var Line[82];
var res[6];
var hasen[5];
footnote({ ただいまmemoのデータをRMN化しております});
count:=1;
case(MesType,
{OLD},{
%rmn{
loop({
count:=count+1;
Line:=@memo(2,count,1);
res:=@getchar(Line,27,3);
hasen:=@getchar(Line,2,5);
case(res>=num,{No},{
madd(3,Line);
});
im(Line<>{} && hasen<>{-----});
});
};
num:=@tail(@getchar(@memo(2,1,1),2,3),{ });
madd(3,@memo(2,count,1));
case(num>0,{No},{
num:=@tail(@getchar(@memo(2,2,1),2,3),{ });
count:=2;
madd(3,@memo(2,2,1));
});
rmn;
case(Line<>{},{Yes},{
count:=count+1;
num:=@tail(@getchar(@memo(2,count,1),2,3),{ });
madd(3,@memo(2,count,1));
rmn;
});
},{NEW},{
%rmn{
loop({
count:=count+1;
Line:=@memo(2,count,1);
res:=@getchar(Line,29,5);
hasen:=@getchar(Line,2,5);
case(res>=num,{No},{
madd(3,Line);
});
im(Line<>{} && hasen<>{-----});
});
};
num:=@tail(@getchar(@memo(2,1,1),2,5),{ });
madd(3,@memo(2,1,1));
case(num>0,{No},{
num:=@tail(@getchar(@memo(2,2,1),2,5),{ });
count:=2;
madd(3,@memo(2,2,1));
});
rmn;
case(Line<>{},{Yes},{
count:=count+1;
num:=@tail(@getchar(@memo(2,count,1),2,5),{ });
madd(3,@memo(2,count,1));
rmn;
});
});
mclear(2);
mcopy(3,2);
mclear(3);
};
%Who{
%SetHandle{
Handle:=@head(@getchar(Line,11,18),{\n});
loop({
case(@getchar(Handle,@nochar(Handle),1)={ },
{Yes},{ Handle:=@body(Handle,,{ }); im({Yes});
},{No},{
case(@getchar(Handle,@nochar(Handle)-1,2)={ },
{Yes},{ Handle:=@body(Handle,,{ }); im({Yes});
},{No},{im({No});
});
});
});
};
var NowIndex[82];
var Dir[8];
var ID[8];
var Handle[18];
var num[6];
Handle:={};
NowIndex:=@memo(2,linenum,1);
case(MesType,
{OLD},{ ID:=@getchar(NowIndex,6,8);
num:={#}|@tail(@getchar(NowIndex,2,3),{ });
},{NEW},{ID:=@getchar(NowIndex,8,8);
num:={#}|@tail(@getchar(NowIndex,2,5),{ });
});
%letter @getchar(ID,1,1);
case(@filechk(logd|{\}|FORUM|{\MEMBER.TXT}),
{Yes},{ Dir:=FORUM;
},{No},{Dir:={MAIL};
});
case(@fopen(logd|{\}|Dir|{\MEMBER.TXT}),{Yes},{
loop({
Line:=@fread(1,letter);
case(@getchar(Line,1,8)=ID,{Yes},{
SetHandle;
});
im(Line<>{});
});
fclose;
case(Handle<>{},
{Yes},{ select(num|{ は「}|Handle|{」氏の発言です},5,,{ OK?});
},{No},{select(num|{ の該当者は見当たりませんでした},5,,
{ OK?});
});
});
};
%ChkType{
var IndexLine[82];
fopen(objfile);
loop({
IndexLine:=@fread;
case(@getchar(IndexLine,17,1)={/} &&
@getchar(IndexLine,23,1)={:},
{Yes},{
MesType:={OLD};
sp:=17;
im({No});
},{No},{
case(@getchar(IndexLine,19,1)={/} &&
@getchar(IndexLine,25,1)={:},
{Yes},{
MesType:={NEW};
sp:=19;
im({No});
},{No},{
im(IndexLine<>{});
});
});
});
fclose;
};
%catdata{
var data2[1000];
var num[600];
var Hnum[6];
var Tnum[6];
data2:=data;
data:={};
num:=@head(data2,{,});
data2:=@body(data2,{,});
Hnum:=num; Tnum:=num;
loop({
num:=@head(data2,{,});
data2:=@body(data2,{,});
case(Tnum+1=num,
{Yes},{Tnum:=num;
},{No},{
case(Hnum==Tnum,
{Yes},{ data:=data|Hnum|{,};
},{No},{data:=data|Hnum|{-}|Tnum|{,};
});
Hnum:=num; Tnum:=num;
});
im(data2<>{});
});
case(Hnum<>{},{Yes},{
case(Hnum==Tnum,
{Yes},{ data:=data|Hnum|{,};
},{No},{data:=data|Hnum|{-}|Tnum|{,};
});
});
};
%getOLD{
%tmp tmpdir|{\_READ.TMP};
item:=1;
mwrite(tmp,2);
mclear(2);
Line:=@read(tmp,1,1);
case(@getchar(Line,1,1)={*},
{Yes},{ madd(2,{});
},{No},{madd(2,@getchar(Line,1,2));
});
fopen(tmp);
loop({
Line:=@fread(1,{*});
case(@getchar(Line,1,1)={*},{Yes},{
data:=data|@tail(@getchar(Line,2,3),{ })|{,};
item2:=@ftell;
mread(tmp,2,item+1,item2-item-1);
madd(2,{!});
item:=item2;
});
im(Line<>{});
});
case(data<>{},{Yes},catdata);
data:=@body(data,,{,});
mread(tmp,2,item+1,99999);
delfile(tmp);
};
%getNEW{
%tmp tmpdir|{\_READ.TMP};
item:=1;
mwrite(tmp,2);
mclear(2);
Line:=@read(tmp,1,1);
case(@getchar(Line,1,1)={*},
{Yes},{ madd(2,{});
},{No},{madd(2,@getchar(Line,1,2));
});
fopen(tmp);
loop({
Line:=@fread(1,{*});
case(@getchar(Line,1,1)={*},{Yes},{
data:=data|@tail(@getchar(Line,2,5),{ })|{,};
item2:=@ftell;
mread(tmp,2,item+1,item2-item-1);
madd(2,{!});
item:=item2;
});
im(Line<>{});
});
case(data<>{},{Yes},catdata);
data:=@body(data,,{,});
mread(tmp,2,item+1,99999);
delfile(tmp);
};
%writedata{
var fno[10];
fno:=0;
loop({ fno:=fno+1;
filechk(FNameTop|{MES}|fno|{.txt})
});
fno:=@getchar(fno|{ },1,3);
IndexLine:={予}|{ }|fno|{ Read :}|@getchar(FORUM|{ },1,8)|
{/}|MES|{/ :指定発言取得\n};
write(IndexFName,IndexLine);
write(FNameTop|{MES}|fno|{.txt},{#}|data|{\n});
mwrite(objfile,2);
write(objfile,{>\n});
};
%search{
%delmes{
%tmp logd|{\_READ.TMP};
mwrite(tmp,2);
mclear(2);
fopen(tmp);
Line:=@fread(2,{-});
item:=@ftell;
case(@getchar(Line,1,20)={--------------------},
{Yes},{
mread(tmp,2,0,item);
mread(tmp,2,item+81,99999);
},{No},{
mread(tmp,2);
});
fclose;
delfile(tmp);
};
var max[5];
var now[5];
var Line[82];
var data[1000];
CloseAllMemo;
mclear(3);
footnote({ ただいまデータを書き出しています});
delmes;
max:=@nolmemo(2);
now:=0;
case(MesType,{OLD},{getOLD},{NEW},{getNEW});
case(data<>{},{Yes},{writedata});
};
%end{
var NowIndex[82];
case(linenum>start && start<>{},{Yes},{
mclear(3);
mmove(2,1,start,3);
loop({
start:=start+1;
NowIndex:=@memo(2,start,1);
case(@getchar(NowIndex,1,1),
{*},{madd(3,{ }|@getchar(NowIndex,2,82));
},{ },{madd(3,{*}|@getchar(NowIndex,2,82))
},,{madd(3,NowIndex);
});
im(start<linenum);
});
mmove(2,linenum+1,@nolmemo(2),3);
mclear(2);
mcopy(3,2);
mclear(3);
});
};
%setstar{
var NowIndex[82];
NowIndex:=@memo(2,linenum,1);
mclear(3);
mmove(2,1,linenum-1,3);
case(@getchar(NowIndex,1,1),
{*},{ madd(3,{ }|@getchar(NowIndex,2,82));
},{ },{ madd(3,{*}|@getchar(NowIndex,2,82));
},{X},{ madd(3,{ }|@getchar(NowIndex,2,82));
},,{ madd(3,NowIndex);
});
mmove(2,linenum+1,@nolmemo(2),3);
mclear(2);
mcopy(3,2);
mclear(3);
};
%divrtn{
case(MIDOKU=0,
{Yes},{
madd(2,{----------------------------< 未読はありません >}|
{-----------------------------\n});
},{No},{
var divline[5];
%max @nolmemo(2)-1;
divline:=max-MIDOKU;
case(divline<0,{Yes},{divline:=0});
mmove(2,1,divline,3);
madd(3,{----------------------------< 以降が新規取得分 >}|
{-----------------------------\n});
mmove(2,divline+1,max+1,3);
mclear(2);
mcopy(3,2);
mclear(3);
});
};
%readdata{
var point1[8];
var point2[8];
footnote({ ただいまデータを読み込んでいます});
mclear(2);
fopen(objfile);
loop({
IndexLine:=@fread(sp,{/});
point1:=@ftell;
fread(1,{>});
point2:=@ftell;
mread(objfile,2,point1,point2-point1);
im(IndexLine<>{});
});
fclose;
mwrite(objfile,2);
write(objfile,{>\n});
case(limit>0,{Yes},{
var firstline[5];
%max @nolmemo(2)-1;
firstline:=max-limit;
case(firstline<1,{Yes},{firstline:=1});
mmove(2,firstline,max,3);
mclear(2);
mcopy(3,2);
mclear(3);
});
divrtn;
};
%setdata{
var linenum[8];
var start[8];
ChkType;
readdata;
loop({
mopen(2,0,21,639,459,{w});
curline(linenum);
footnote({設定破棄 指定 始点終点 指名非読検索RMN },
{b});
loop({waitx(1000);
im(@xtype!=2 && @xtype<100 || @xlinenum<0)
});
linenum:=@xlinenum;
case(@PFK(@xtype),
2,{ OutAllMemo;
setstar;
start:={};
im({Yes});
},101,{ search;
im({No});
},102,{ im({No});
},104,{ OutAllMemo;
setstar;
start:={};
im({Yes});
},106,{ OutAllMemo;
setstar;
start:=linenum;
im({Yes});
},107,{ OutAllMemo;
end;
start:={};
im({Yes});
},109,{ mark:={*};
SelHan;
start:={};
im({Yes});
},110,{ mark:={X};
SelHan;
start:={};
im({Yes});
},111,{ OutAllMemo;
Who;
im({Yes});
},112,{ OutAllMemo;
case(@YesNo({ memoのデータをRMN形式に変更します}),
{Yes},{ RMN;
});
im({Yes});
}, ,{ OutAllMemo;
im({Yes});
});
});
CloseAllMemo;
footnote({});
};
%dispmes{[Forum]
var linenum[8];
%sharp{
case(@getchar(@memo(1,linenum,1),1,1)={#},
{Yes},{ FORUM:=Forum;
MES:=@tail(@getchar(@memo(1,linenum,1),11,2),{ });
MIDOKU:=@tail(@getchar(@memo(1,linenum,1),26,3),{ });
case(@nochar(MES),1,{MES:={0}|MES});
CloseAllMemo;
objfile:=logd|{\}|FORUM|{\MES}|MES|{.RTN};
setdata;
im({Yes});
},{No},{OutAllMemo;
im({Yes});
});
};
case(@fopen(logd|{\}|Forum|{\mestitle.log}),{Yes},{
madd(1,{ ★ 読みたい物を左ダブルクリック}|
{(又はカーソル移動+PF3)で選択して下さい ★ \n});
loop({
%line @fread(12,{(});
%CcsNo @case(@getchar(line,1,1),
{ },{im({0}|@getchar(line,2,2))},
,{getchar(line,1,2)
});
case(line<>{} && @getchar(line,17,1)={)} &&
@getchar(line,1,2)+0>0,
{Yes},{
case(@filechk(logd|{\}|Forum|{\MES}|CcsNo|
{.RTN}),
{Yes},{madd(1,{#})},{No},{madd(1,{ })});
madd(1,@getchar(Forum|{ },1,8)|{:}
|@getchar(line,1,2)|{会議室 }
|@getchar(line,6,5)|{(}
|@getchar(line,14,3)|{)}
|@getchar(line,21,5)|{:}
|@getchar(line,29,80));
});
im(line<>{});
});
fclose;
loop({
mopen(1,0,21,639,459,{w});
curline(linenum);
footnote({終了決定},{b});
loop({waitx(1000);
im(@xtype!=1 && @xtype<100 || @xlinenum<0)
});
linenum:=@xlinenum;
case(@PFK(@xtype),
1,{ sharp;
},101,{ im({No});
},102,{ sharp;
});
});
CloseAllMemo;
mclear(1);
});
footnote({});
};
%BForum{
var f2[700];
var b2[1100];
f2:=rtn;
b2:={loop(}|@xc({7b})|
{select({ フォーラムを選択してください},999,{im({Yes})}};
loop({
%fnset @head(f2,{/});
%fname @head(fnset,{(});
case(b2<>{},{Yes},{b2:=b2|{,}});
b2:=b2 |@xc({7b})|{ }|fname|{ }|@xc({7d})|{,}
|@xc({7b})|{ dispmes(}
|@xc({7b})|fname|@xc({7d})|{); im({No}); }
|@xc({7d});
f2:=@body(f2,{/});
im(f2<>{});
});
b2:=b2 |{,{ 終 了 },{flag:={No}; im({No})} ); footnote({}); }
|@xc({7d})|{);};
case(rtn={},
{Yes}, {im({});
},{No},{im(b2);
});
};
%selrtn @BForum;
allclear;
madd(1,{});
madd(2,{});
madd(3,{});
footnote({});
flag:={Yes};
loop({
FORUM:={};
MES:={};
mclear(1); mclear(2); mclear(3);
selrtn;
CloseAllMemo;
im(flag<>{No});
});
allclear;